#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Todo 应用主入口

一个使用 PyQt5 开发的任务管理应用
功能包括：任务的增删改查、优先级管理、状态筛选、数据持久化等
"""

import sys
import os
from PyQt5.QtWidgets import QApplication, QMessageBox
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon

# 添加项目根目录到 Python 路径
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))

from ui.main_window import MainWindow


def main():
    """主函数"""
    # 设置高DPI支持（必须在创建QApplication之前）
    QApplication.setAttribute(Qt.AA_EnableHighDpiScaling, True)
    QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps, True)
    
    # 创建应用实例
    app = QApplication(sys.argv)
    
    # 设置应用属性
    app.setApplicationName("Todo 应用")
    app.setApplicationVersion("1.0.0")
    app.setOrganizationName("Todo App")
    
    try:
        # 创建主窗口
        window = MainWindow()
        window.show()
        
        # 运行应用
        sys.exit(app.exec_())
        
    except Exception as e:
        # 错误处理
        error_msg = f"应用启动失败：{str(e)}"
        print(error_msg)
        
        # 如果可能，显示错误对话框
        try:
            QMessageBox.critical(None, "错误", error_msg)
        except:
            pass
        
        sys.exit(1)


if __name__ == "__main__":
    main()